/*
  flamingo - 2D Game Engine
  Copyright (C) 2009 Bradley Zeis

  This program is free software: you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation, either version 3 of the License, or
  (at your option) any later version.

  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.

  You should have received a copy of the GNU General Public License
  along with this program.  If not, see <http://www.gnu.org/licenses/>.

  Bradley Zeis
  flamingoengine@gmail.com
*/

#define FLMATH_DOC "Mathematical functions and Classes."

/* General Functions */
#define cpow2_doc "Return the closest power of 2 to x."
#define npow2_doc "Return the next power of 2 to x."
#define ppow2_doc "Return the previous power of 2 to x."

#define nangd_doc "Return normalized angle in degrees."
#define nangr_doc "Return normalized angle in radians."

/* Linear Functions */
#define dist_doc "Return distance between two Vectors."
#define dist2_doc "Return distance squared between two Vectors."
#define midpt_doc "Return the midpoint between two Vectors."

/* Vector Functions */
#define angbt_doc "Return the angle in degrees between two Vectors."
#define dotpr_doc "Return the dot product between two Vectors."

/* Polygon Functions */
#define npoly_doc "Return a Polygon with wrap indices of \"wrap.\""
#define pntin_doc "Return True if point is in verts."
#define centr_doc "Return the centroid of verts."
#define area_doc "Return the area of verts."
#define sarea_doc "Return the signed area of verts."
#define orien_doc "Return True if verts are ordered counterclockwise."
#define simpl_doc "Simplify verts with Douglas-Puecker algorithm."

/* VECTOR */
#define VECTOR_DOC "2-dimensional column vector."

#define vect_x_doc "X coordinate of the Vector"
#define vect_y_doc "Y coordinate of the Vector"

#define vect_copy_doc "Return an exact copy of the Vector."
#define vect_updt_doc "Set the Vector to point."
#define vect_dot_doc "Return dot product of the Vector and another."
#define vect_norm_doc "Return a normalized Vector with same direction."
#define vect_nori_doc "Normalize the Vector inplace."
#define vect_rota_doc "Return a rotated Vector with same length"
#define vect_perp_doc "Return a perpendicular Vector."
#define vect_anga_doc "Return the angle of the Vector about point."
#define vect_angb_doc "Return the angle between the Vector and another."

#define vect_leng_doc "Length (magnitude) of the Vector."
#define vect_angl_doc "Angle of the Vector about the z-axis."

/* POLYGON */
#define POLYGON_DOC "2-dimensional convex Polygon."

#define poly_copy_doc "Return an exact copy of the Polygon."
#define poly_gtpt_doc "Return a list of the Polygon's vertices."
#define poly_ptin_doc "Return True if point is in the Polygon"
#define poly_proj_doc "Project the Polygon to axis."
#define poly_anga_doc "Return Polygon's angle about point"
#define poly_intr_doc "Return True if the Polygon intersects with other."

#define poly_cent_doc "Center (centroid) of the Polygon."
#define poly_cenx_doc "X coordinate of the Polygon center."
#define poly_ceny_doc "Y coordinate of the Polyogn center"
#define poly_area_doc "Area of the Polygon."
#define poly_sarea_doc "Signed area of the Polygon."
#define poly_angl_doc "Angle of the Polygon."
#define poly_orie_doc "Orientation of the Polygon"

/* RECT */
#define RECT_DOC "2-dimensional orientated (rotatable) rectangle."

#define rect_copy_doc "Return an exact copy of the Rect."
#define rect_gtpt_doc "Return a list of the Rect's vertices."
#define rect_ptin_doc "Return True if point is in the Rect"
#define rect_proj_doc "Project the Rect to axis."
#define rect_anga_doc "Return Rect's angle about point"
#define rect_intr_doc "Return True if the Rect intersects with other."

#define rect_cent_doc "Center (centroid) of the Rect."
#define rect_cenx_doc "X coordinate of the Rect center."
#define rect_ceny_doc "Y coordinate of the Rect center"
#define rect_area_doc "Area of the Rect."
#define rect_sarea_doc "Signed area of the Rect."
#define rect_angl_doc "Angle of the Rect."
#define rect_orie_doc "Orientation of the Rect"

#define rect_top_doc "Y value of the Rect's top side."
#define rect_bot_doc "Y value of the Rect's bottom side."
#define rect_lef_doc "X value of the Rect's left side."
#define rect_rig_doc "X value of the Rect's right side."

#define rect_tpl_doc "Topleft coordinate of the Rect."
#define rect_tpr_doc "Topright coordinate of the Rect."
#define rect_btl_doc "Bottomleft coordinate of the Rect."
#define rect_btr_doc "Bottomright coordinate of the Rect."

#define rect_mdt_doc "Midpoint of the Rect's top edge."
#define rect_mdb_doc "Midpoint of the Rect's bottom edge."
#define rect_mdl_doc "Midpoint of the Rect's left edge."
#define rect_mdr_doc "Midpoint of the Rect's right edge."

#define rect_wid_doc "Width of the Rect."
#define rect_hei_doc "Height of the Rect"
#define rect_siz_doc "Size of the Rect as a tuple."
